跳到主要内容
版本:2024.05-cpu

init_bulk param.json

初始训练集制备,包括对构型(VASP、PWmat等格式)进行驰豫阔胞缩放微扰AIMD(支持 DFTB、PWMAT、VASP)设置。

参数列表

reserve_work

是否保留临时工作目录,默认值为 false , 不保存。

data_shuffle

对于制备得到的数据,是否随机划分为训练集和验证集, 默认值为 true

train_valid_ratio

用于设置训练集和验证集的划分比例,默认值为 0.8 , 即把训练集和验证集按照80%和20%做划分。

interval

用于设置提取数据时,从轨迹中选取结构的间隔,即在轨迹中,每隔多少个结构选取一个构型,默认值为1

sys_config_prefix

用于设置初始构型的路径前缀,可选参数,与 sys_configs/config 配合设置。可以是绝对路径或者相对路径,相对路径为当前目录。

例子:"sys_config_prefix":"/data/structure", "config":"atom.config", 则 atom.config 的实际路径是 /data/structure/atom.config

sys_configs

设置构型的文件路径、驰豫(relax)、阔胞(super cell)、缩放晶格(scale)、微扰原子位置(pertub)、AIMD。完整的参数如下例所示。

config

设置构型的文件路径,如果设置了 sys_config_prefix 则进行路径拼接,否则使用 config 中设置的路径作为config路径。

format

设置构型的文件类型,支持 VASPPOSCAR 或者 PWMATatom.config 格式。如果是 POSCAR 文件,则值为 "vasp/poscar", 默认值为 "pwmat/config"

relax

是否对 config 做驰豫,默认值为 "true"

relax_input_idx

设置驰豫使用的控制文件,与 relax_input 配合使用,指定控制文件的位置,如 例子 中所示,使用 relax_input 中设置的 relax_etot1.input 文件作为 PWMAT 控制文件。默认值为0,即使用 relax_input 中的第一个文件作为控制文件。

super_cell

用于阔胞设置,可选参数,如不设置,则对结构不做阔胞。数据格式为 list,支持如下格式输入:[1, 1, 2][[1,0,0],[0, 2, 0],[0,0,1]][1,0,0,0, 2, 0,0,0,1]

scale

用于对晶格的缩放设置,可选参数,如不设置,则对结构不做缩放。数据格式为 list,如 [0.9, 0.95,0.96, 0.97],表示对结构晶格分别进行 0.9, 0.95,0.96, 0.97 微扰,将得到四个微扰后的结构。

perturb

对结构的原子位置做扰动,配合 cell_pert_fractionatom_pert_distance 使用,perturb 值为扰动后生成的结构数量。可选参数,不设置则不做扰动。

cell_pert_fraction

对晶格的扰动。对 9 个晶格值分别加上从[-cell_pert_fraction,cell_pert_fraction]范围内的均匀分布中随机采样的值,默认值为 0.03

atom_pert_distance

原子坐标的扰动(Angstrom)。对每个原子的三个坐标值,分别加上从 [-atom_pert_distance,atom_pert_distance] 范围内的均匀分布中随机采样的值。默认值为 0.01

aimd

是否对结构做分子动力学模拟,默认值为 true。

aimd_input_idx

设置 AIMD 使用的控制文件,与 aimd_input 配合使用,指定控制文件的位置,如 例子 中所示,使用 aimd_input 中设置的 aimd_etot.input 文件作为 PWMAT 控制文件。默认值为0,即 使用 aimd_input 中的第一个文件作为控制文件。

dft_style

设置 RelaxAIMD 使用哪种DFT计算软件,默认值为 pwmat, 也支持 VASP格式,如果是 VASP 格式,则设置为 vasp

pseudo

设置 PWMATVASP 赝势文件所在路径,为list格式,赝势文件路径可以为绝对路径或相对路径(相对于当前路径)。

in_skf

设置 DFTB(PWMAT封装) 的赝势文件上一级目录所在路径,为string 格式,绝对路径或相对路径(相对于当前路径)。

basis_set_file

参考 potential_file

potential_file

设置 CP2K 赝势文件 BASIS_MOLOPTPOTENTIAL 文件所在路径。例如

    "basis_set_file":"~/datas/systems/cp2k/data/BASIS_MOLOPT",
"potential_file":"~/datas/systems/cp2k/data/POTENTIAL"

relax_input

设置 Relax 的 输入控制文件。如果存在多个 relax 控制文件,则按照list 格式组织。详细的设置请参考下面的例子。

aimd_input

设置 AIMD 的 输入控制文件。如果存在多个 aimd 控制文件,则按照list 格式组织,对于只是用单个文件的情况,也可以设置为dict格式。

input

设置输入控制文件的路径,可以为绝对路径或相对路径(相对于当前路径)。

kspacing

该参数为PWMAT的输入参数,用于设置K点,可选参数。如果在etot.input文件中未设置 MP_N123 参数,则使用该参数设置 K点。如果文件中已经设置了 MP_N123,则对该参数的设置会造成错误,请确保 MP_N123kspacing 只能同时存在一个。 该参数为PWMAT的输入参数,用于设置K点,可选参数。如果在etot.input文件中未设置 MP_N123 参数,则使用该参数设置 K点。

如果 etot.input 文件中未设置 MP_N123,且 kspacing 未设置,则采用默认设置 kspacing 值为 0.5

注意,不能同时设置 MP_N123kspacing

flag_symm

该参数为PWMAT的输入参数,用于设置K点,可选参数。对于 Relax 或者 SCF 计算,默认值为 0, 对于 AIMD计算,默认值为 3

例子

    {
"reserve_work": true,
"data_shuffle":true,
"train_valid_ratio": 0.8,
"sys_configs":[{
"config":"atom.config",
"relax":true,
"relax_input_idx":1,
"super_cell":[1, 1, 2],
"scale":[0.9,0.95],
"perturb":20,
"cell_pert_fraction":0.03,
"atom_pert_distance":0.01,
"aimd":true,
"aimd_input_idx":0
}],

"dft_style":"PWmat",
"pseudo" : ["/path/Si.SG15.PBE.UPF"],

"relax_input":[{
"input":"relax_etot.input",
"kspacing":0.5,
"flag_symm":"0"
},{
"input":"relax_etot1.input",
"kspacing":0.3,
"flag_symm":"0"
},{
"input":"relax_etot2.input",
"kspacing":0.4,
"flag_symm":"0",
"_flag":"1个整数,relax or scf 0 , aimd 3, 磁性体系2"
}],

"aimd_input":[{
"input":"aimd_etot.input",
"kspacing":0.5,
"flag_symm":"3"
},{
"input":"aimd_etot1.input",
"kspacing":0.5,
"flag_symm":"3"
}]
}

上述参数作用

  1. 对 atom.config 做relax;
  2. 对relax后的结构做阔胞(1,1,2);
  3. 对阔胞后的结构对晶格分别进行0.9、0.95缩放;
  4. 对缩放后得到两个结构的原子位置微扰,各自扰动生成20个结构;
  5. 对扰动后得到的40个结构做AIMD模拟;
  6. 将AIMD轨迹自动提取为 PWdata 数据格式作为预训练数据。

relax_inputaimd_input参数的补充说明

kspacingflag_symm是PWMAT的K点设置,如果没有在 etot.input文件中设置 MP_N123 参数,那么程序会使用这两个参数设置K点。因此,如果您已经etot.input设置了 MP_N123 ,那么,您可以将relax_input 和 [aimd_input] 简写为如下形式

    "relax_input":[
"relax_etot.input",
"relax_etot1.input",
"relax_etot2.input"
],

"aimd_input":[
"aimd_etot.input"
"aimd_etot1.input"
]

如果您对在 sys_configs 中的所有结构,都使用同一个relax或者aimd,那么您可以进一步将参数简写为

    "relax_input":"relax_etot.input",
"aimd_input": "aimd_etot.input"

此时,在 sys_configs 您不必再写 relax_input_idxaimd_input_idx 参数,此时您的 sys_configs可以写为如下所示。

    "sys_configs":[{
"config":"atom.config",
"relax":true,
"super_cell":[1, 1, 2],
"scale":[0.9,0.95],
"perturb":20,
"cell_pert_fraction":0.03,
"atom_pert_distance":0.01,
"aimd":true
}]

vasp 的 relax 和 aimd 输入控制文件设置如下例子所示

vasp

设置 dft 计算软件类型
"dft_style":"vasp",
赝势设置
"pseudo" : ["POTCAR"]

单文件
"relax_input":"relax_incar"
多文件
"relax_input":["relax_incar1", "relax_incar2"]

单文件
"aimd_input":"aimd_incar"
多文件
"aimd_input":["aimd_incar1", "aimd_incar2"]

cp2k

设置 dft 计算软件类型
"dft_style":"cp2k",
赝势设置
"basis_set_file_name":"BASIS_MOLOPT",
"potential_file_name":"POTENTIAL",

单文件
"relax_input":"relax_cp2k.inp"
多文件
"relax_input":["relax_cp2k.inp", "relax_cp2k2.inp"]

单文件
"aimd_input":"aimd_cp2k.inp"
多文件
"aimd_input":["aimd_cp2k.inp", "aimd_cp2k2.inp"]